Moving picture coding method and decoding method, and apparatus and program using the same

ABSTRACT

The present invention seeks to provide a solution to the problem that motion compensation in an encoding method of the prior art involves decimal point picture element interpolation by means of fixed filters and therefore cannot realize interpolation of decimal point picture elements that accords with the nature and bit rate of a moving picture. A filter/interpolated image memory ( 101 ) interpolates picture elements of decimal point positions in a reference image by means of a plurality of sets of filters, a motion vector, filter detector ( 102 ) detects the combination of filter and motion vector that realizes the highest encoding efficiency, a prediction value generator ( 103 ) uses the detected combination of filter and motion vector to generate a prediction value, and motion vector/filter detector ( 102 ) supplies as output the information of the filter and information of the motion vector that generated the prediction value; whereby decimal point picture element interpolation that corresponds to the nature and bit rate of the moving picture can be realized and encoding of a moving picture can be improved.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a moving picture encoding and decoding method, and in particular, relates to a moving picture encoding/decoding program, method, and device in which filter coefficients are adaptively switched to encode the interpolation of decimal-point picture elements used in motion compensation.

2. Description of the Related Art

In digital broadcast systems or services, a large number of moving picture signals are compressed and encoded for transmission and storage.

FIG. 1 is a block diagram showing the configuration of a typical encoding device for moving picture signals. The encoding device that is shown in FIG. 1 includes a local decoder and is made up of: frequency converter 11, quantizer 12, variable-length encoder 13, reverse quantizer 14, reverse frequency converter 15, frame memory 16, motion compensator 17, and motion vector detector 18.

An input image is applied as input to the encoder and divided into a plurality of blocks. When an input image is subjected to interframe prediction, the prediction values, which are generated from previously decoded images, are subtracted in each of the blocks by motion compensator 17. Interframe prediction is a method of using a previously reconstructed reference image to encode a current image.

These image blocks are next converted to frequency regions by frequency converter 11. The image blocks that have been converted to frequency regions are next quantized by quantizer 12. The image blocks that have been quantized are finally subjected to entropy encoding by variable-length encoder 13 and then stored.

As the local decoding, the above-described quantized image blocks are again returned to the original space regions by reverse quantizer 14 and reverse frequency converter 15.

In the case of interframe prediction, the above-described prediction values are added to image blocks to form a reconstructed image. This reconstructed image is used in encoding the next image and is therefore called a reference image. The above-described reference image is stored in frame memory 16 and used in motion vector detector 18 and motion compensator 17. Motion vector detector 18 detects motion vectors from the blocks of the input image and the above-described reference image. Motion compensator 17 generates prediction values from the above-described motion vectors and the above-described reference image.

FIG. 2 is a block diagram showing the configuration of the decoder that corresponds to the encoder shown in FIG. 1. The decoder that is shown in FIG. 2 is made up of: variable-length decoder 19, reverse quantizer 20, reverse frequency converter 21, motion compensator 22, and frame memory 23. The operations of reverse quantizer 20, reverse frequency converter 21, motion compensator 22, and frame memory 23 are the same as the operations of reverse quantizer 14, reverse frequency converter 15, motion compensator 17 and frame memory 16 in the encoder.

In decoding, the input is first restored from the encoded representation to the original representation by means of variable-length decoder 19. Reverse quantization and reverse frequency conversion are next performed on the decoded conversion coefficients to restore the conversion coefficients to space region image blocks. When performing interframe prediction, the prediction values are added to the image blocks that have been restored to space regions to form a reconstructed image. These prediction values are generated by means of the reference image that has been stored in frame memory 23 and motion vectors that are supplied from variable-length decoder 19. A reconstructed image is used in the image that is next to be decoded, and is therefore stored in frame memory 23.

Means for improving the efficiency of encoding the above-described moving picture signal include the use of a prefilter or motion compensation of decimal point picture element accuracy. A prefilter improves the encoding efficiency by using a filter to manipulate the bandwidth of the input image. In contrast, motion compensation of decimal point picture element accuracy improves the encoding efficiency by producing motion of decimal point accuracy in the reference image.

A prefilter limits the bandwidth of the input image, and therefore does not directly improve the encoding efficiency of a motion picture. Motion compensation of decimal point picture element accuracy in the prior art uses fixed filters to interpolate decimal point picture elements. As a consequence, the methods of the prior art are incapable of decimal point picture element interpolation that accords with bit rate and the nature of the moving picture.

SUMMARY OF THE INVENTION

The present invention was realized in view of the above-described prior art and has an object the provision of a method of encoding/decoding a moving picture that can enhance the effect of motion compensation and improve encoding efficiency.

The first embodiment of the present invention is a moving picture encoding program, method, or device for detecting motion of decimal point accuracy; whereby:

-   -   picture elements of decimal point positions in a reference image         are interpolated by a plurality of sets of filters;     -   the combination of filter and motion vector that realize the         highest encoding efficiency is detected; the detected filter and         motion vector are used to generate a prediction value; and     -   information of the motion vector and information of the filter         that generated the prediction value are supplied as output.

According to the above-described configuration, the filter and motion vectors for which the encoding efficiency is highest are detected, and the prediction value that is generated by the detected filter and motion vector is used in motion compensation, whereby the encoding efficiency of a moving picture can be improved.

The second embodiment of the present invention is a moving picture decoding program, method, or device for performing motion compensation of decimal point accuracy, whereby:

-   -   based on filter information that has been applied as input, a         filter or interpolation frames that are referred to are         switched; and     -   the filter or interpolation frames that are referred to that         have been switched and motion vectors that have been applied as         input are used to generate a prediction value.

The third embodiment of the present invention is the moving picture encoding program, method, or device of the first embodiment, wherein:

-   -   a plurality of filters in which at least phases are different is         used to interpolate picture elements of the decimal point         positions.

The third embodiment raises the accuracy of motion compensation and improves the encoding efficiency.

The fourth embodiment of the present invention is the moving picture decoding program, method, or device according to the second embodiment, wherein:

-   -   a plurality of filters in which at least phases are different is         used to interpolate picture elements of decimal point positions.

The fifth embodiment of the present invention is a moving picture encoding program, method, or device according to the first embodiment, wherein:

-   -   a plurality of filters in which at least bandwidths are         different is used to interpolate the above-described picture         elements of decimal point positions.

The fifth embodiment enables an improvement in encoding efficiency by maintaining the bandwidth of the reference image or by attenuating noise of the reference image.

The sixth embodiment of the present invention is the moving picture decoding program, method, or device of the second embodiment, wherein:

-   -   a plurality of filters in which at least bandwidths are         different is used to interpolate the above-described picture         elements of the decimal point positions.

The above and other objects, features, and advantages of the present invention will become apparent from the following description with reference to the accompanying drawings, which illustrate examples of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing an encoding device of the prior art.

FIG. 2 is a block diagram showing a decoding device in the prior art.

FIG. 3 is a block diagram showing the configuration when a plurality of interpolated image storage devices is provided in the first embodiment of the present invention.

FIG. 4 is a flow chart showing the operations when a plurality of interpolation image storage devices is provided in the first embodiment according to the present invention.

FIG. 5 is a block diagram showing the configuration when one interpolated image storage device is provided in the second embodiment according to the present invention.

FIG. 6 is a flow chart showing the operations when an interpolated image storage device is not provided in the second embodiment according to the present invention.

FIG. 7 is a block diagram showing the configuration when an interpolated image storage device is not provided in the third embodiment according to the present invention.

FIG. 8 is a flow chart showing the operation when a plurality of interpolated image storage devices are provided in the third embodiment according to the present invention.

FIG. 9 is a block diagram showing the configuration when a plurality of interpolated image storage devices are provided in the fourth embodiment according to the present invention.

FIG. 10 is a flow chart showing the operation when a plurality of interpolated image storage devices are provided in the fourth embodiment according to the present invention.

FIG. 11 shows the steps of interpolating decimal point picture elements.

FIG. 12 shows a case of interpolating decimal point picture elements without shifting phase.

FIG. 13 shows a case of interpolating decimal point picture elements while shifting phase.

FIG. 14 shows the difference between a filter that interpolates half picture elements and a filter that interpolates quarter picture elements.

FIG. 15 shows the maintenance of edges by interpolating using a filter with broad bandwidth.

FIG. 16 shows how a filter of broad bandwidth also preserves noise.

FIG. 17 a typical schematic block diagram of an information processing system in which the moving picture encoding/decoding device according to the present invention is implemented.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the present invention are next described in detail with reference to the accompanying figures.

First Embodiment

FIG. 3 is a block diagram showing the configuration of the first embodiment of the present invention. The present embodiment is realized by using a typical computer system that is made up of a control device, a storage device, an input device, and a display device. FIG. 3 shows only the principal components of the embodiment.

The embodiment includes filter/interpolated image storage device 101, motion vector/filter coefficient detector 102, and prediction value generator 103. These components correspond to the frame memory/motion compensation/motion vector detection of the encoding method that was shown in FIG. 1, and components other than these have the same composition as the encoding devices shown in FIG. 1. The following explanation of the present embodiment therefore also makes reference to FIG. 1.

The present embodiment is constructed for a case in which the main memory of a computer system that includes the present embodiment has a surplus and can store a plurality of interpolated images. The configuration and operation of the present embodiment are next described.

Filter/interpolated image storage device 101 is made up of: a plurality of sets in each of which filter 1011 is combined with interpolated image storage device 1012; and switch 1013 that receives as input the output of interpolated image storage device 1012 of each set and that selectively supplies any of these inputs as output to motion vector/filter detector 102 and prediction value generator 103.

Each of filters 1011 has a different filter characteristic and generates a decimal point position interpolated image from the reconstructed image that is received as input and stores the generated image in interpolated image storage device 1021.

Interpolated image storage device 1021 stores the interpolated image that is supplied from filter 1011.

When a configuration is adopted in which a means for storing reconstructed images is separately provided and reconstructed images are successively read as necessary, the results of successive calculation by filter 1011 may be supplied as output without providing interpolated image storage device 1021.

Motion vector/filter detector 102 is composed of motion vector detector 1021 and filter detector 1022. This motion vector/filter detector 102 is configured so as to be capable of controlling switch 1013, detects the combination of motion vector and filter that provides the highest encoding efficiency and supplies the detected motion vector and filter to prediction value generator 103 and variable-length encoder 13 (Refer to FIG. 1).

Motion vector detector 1021 is configured to receive images as input and is capable of operating switch 1013, and successively switches switch 1013 to receive and refer to each of the interpolated images that are stored in each of interpolated image storage devices 1012, finds block costs (to be explained hereinbelow) from the input images and interpolated images that it refers to, and supplies the combination of motion vector and prediction error that entails the lowest block cost to filter detector 1022. The prediction error is the difference between the input image and the reconstructed image.

Filter detector 1022 uses the filter information and the motion vectors and prediction errors of each of the interpolated images that are stored in each interpolated image storage device 1012 and that are supplied from motion vector detector 1021 to find encode costs (to be explained hereinbelow), and detects filter 1011 that generated the image having the lowest encode cost. Filter detector 1022 also supplies the combination of filter and motion vector that have been detected to prediction value generator 103 and variable-length encoder 13.

Motion vector detector 1021 and filter detector 1022 may also be realized as a single unit, and may be configured so as to detect the combination of motion vector and filter that obtain the lowest block cost and encode cost.

Similar to motion vector detector 1021, prediction value generator 103 is constructed so as to be capable of operating switch 1013 and uses the motion vectors and filters that are supplied from motion vector/filter detector 102 to generate prediction values. More specifically, prediction value generator 103 refers to interpolated images that correspond to filters by switching switch 1013, and uses the motion vectors to read prediction values from the interpolated images. Motion vector/filter detector 102 may also be provided with the capability of storing prediction values, and motion vector/filter detector 102 may be configured with the capability to directly generate prediction values.

The operation of the present embodiment is explained with reference to FIG. 4. FIG. 4 is a flow chart showing the operation of the present embodiment.

In Step S101, filter/interpolated image storage device 1-01 is used to generate a plurality of decimal point position interpolated images in a reconstructed image and to store a plurality of interpolated images.

If the picture elements that make up an image are x(i, j), the size of an image is W×H, and interpolation filter coefficients are (f1, f2, f3, and f4), the half picture elements that are positioned between x(i, j) and x(i+1, j) are interpolated by means of the following equation: $\begin{matrix} {{x\left( {{i + {1/2}},j} \right)} = {\left( {{{f1} \times {x\left( {{i - 1},j} \right)}} + {{f2} \times {x\left( {i,j} \right)}} + {{f3} \times {x\left( {{i + 1},j} \right)}} + {{f4} \times {x\left( {{i + 2},j} \right)}}} \right)/{\sum\limits_{i = 1}^{4}\quad{fi}}}} & \left\lbrack {{Equation}\quad 1} \right\rbrack \end{matrix}$

The interpolation of a half picture element is completed by applying Equation 1 to the horizontal direction and vertical direction of the image. The size of the half decimal point position interpolated image is 4×W×H. A quarter picture element and an eighth picture element are obtained by repeating the above-described process, the sizes of the interpolated images being 16×W×H and 64×W×H, respectively.

When interpolating a 1/n picture element, a typical filter that accords with the interpolation accuracy and decimal point picture element position may be used for direct interpolation.

In the succeeding Step S102, motion vector/filter detector 102 is used to find, from each of the interpolated images that were obtained in Step S101, the combination of motion vector and prediction error that obtains the lowest block cost for each of the interpolated images.

Block costs are calculated by motion vector detector 1021 and are represented by the following equation: $\begin{matrix} {{{Block}\quad{cost}} = {{\sum\limits_{i,j}^{M,N}\quad{{{s\left( {i,j} \right)} - {r\left( {{i - {vx}},{j - {vy}}} \right)}}}} + {\partial{\times {{VF}\left( {{{vx} - {px}},{{vy} - {py}}} \right)}}}}} & \left\lbrack {{Equation}\quad 2} \right\rbrack \end{matrix}$

-   -   where picture elements that make up an input image are s(i, j),         picture elements that make up an interpolated reconstructed         image are s(i, j), the size of a block is M×N, a motion vector         is (vx, vy), the prediction of a motion vector is (px, py), the         function for finding the amount of vector encoding is VF(x, y),         and a is a weighting parameter of the amount of vector encoding.

Next, in Step S103, filter detector 1022 uses the combination of motion vector and prediction error that was obtained in Step S102 and the filter coefficient that specifies the interpolated image to find the encode cost. The encode cost that corresponds to this filter coefficient is given by the equation: Encode cos t _(coeff 1) =E _(coeff1) +∂×VF(vx−px,vy−Py)_(coeff1) +F(coeff1)  [Equation 3-1]

-   -   where E is the code amount of the prediction error, coeff1 is         the filter coefficient, and FF (coeff) is the function for         finding the code amount of the filter coefficient.

When reducing the amount of calculation required for finding the prediction error code amount, which is the first item in Equation 3-1, the code cost may reuse the block cost: Encode cos t _(coeff1)=Block cos t _(coeff1) +F(coeff1)  [Equation 3-2] When the filter is switched in units having the size of block P, (frames are also block groups), the encode cost for the filter coefficient coeff 1 is given by: $\begin{matrix} {{{Encode}\quad{cost}_{coeff1}} = {{\sum\limits_{k = 1}^{P}\quad\left( {{Block}\quad{{cost}_{coeff1}(k)}} \right)} + {F({coeff1})}}} & \left\lbrack {{Equation}\quad 3\text{-}3} \right\rbrack \end{matrix}$

In calculating the block cost, the code amount of the prediction error can obviously be used. When filter coefficients are switched in units of block groups, however, the prediction error and block cost must be stored with the motion vector for the number of blocks, and filter detector 1022 is provided with the capability to store this information.

Next, in Step S104, the combination of filter coefficient and motion vector that obtained the lowest encode cost and that was found in Step S103 is supplied to variable-length encoder 13 and prediction value generator 103.

In Step S105, prediction value generator 103 uses the filter coefficient and motion vector that were obtained in Step S104 to generate a prediction value. In the generation of prediction values, prediction value generator 103 switches switch 1013 in accordance with the filter coefficient to select a referenced interpolated image and uses motion vectors to read and generate prediction values.

Although the method of selecting filter coefficients that have been found beforehand is described in the above-described steps, it goes without saying that this method can be easily combined with an algorithm for estimating the filter coefficients.

Second Embodiment

The second embodiment of the present invention is next explained. The present embodiment is constructed for a case in which the main memory of the computer system that includes the present embodiment has no surplus and is unable to store a plurality of interpolated images. The configuration and operation of this embodiment are described hereinbelow.

FIG. 5 is a block diagram showing the main configuration of the second embodiment of the present invention.

The present embodiment is provided with filter/interpolated image storage device 101 b, motion vector/filter coefficient detector 102 b, and prediction value generator 103 b. Compared with the constituent elements of the embodiment that is shown in FIG. 3, filter/interpolated image storage device 101 b performs the same operation as filter/interpolated image storage device 101; motion vector/filter coefficient detector 102 b performs the same operation as motion vector/filter coefficient detector 102; and prediction value generator 103 b performs the same operation as prediction value generator 103. As for the points of difference between these components, filter 1011 b and interpolated image storage device 1012 b that form a part of filter/interpolated image storage device 101 b are provided in only one set; and motion vector/filter detector 102 b and prediction value generator 103 b are provided with a signal line for updating the filter coefficient. In addition, switch 1013 is not provided because this configuration contains only one set of filter 1011 b and interpolated image storage device 1012 b.

FIG. 6 is a flow chart showing the operation of the embodiment shown in FIG. 5.

The flow chart that is shown in FIG. 6 is made up of Steps S101 b-S107 b, and when compared with the flow chart of the first embodiment that is shown in FIG. 4, equivalent processing is carried out in Step S101 b and Step S101, in Step S102 b and Step S102, in Step S103 b and Step S103, in Step S104 b and Step S104, in Step S105 b and Step S101, and in Step S106 b and Step S105.

The main points of difference between the operations of the present embodiment and those of the first embodiment are the detection of the optimum combination of filter and motion vector while overwriting the interpolated images that are stored in interpolated image storage device 1012 b in the decimal point picture element interpolation that is performed in Step S101 b, the motion vector detection that is performed in Step S102 b, and the cost comparison that is performed in Step S103 b. Further, after Step S104 b, it is checked whether the interpolated image that prediction value generator 103 b wishes to refer to is stored in interpolated image storage device 1012 b, and if the interpolated image is not stored in interpolated image storage device 1012 b, the decimal point picture element interpolation is again performed in Step S105 b, following which a prediction value is generated in Step S106 b.

The configuration of the present embodiment is effective when no surplus exists in the main memory. However, when the desired interpolated image does not remain in interpolated image storage device 1012 b, an interpolated image must again be generated by the filter, resulting in an increase in the amount of calculations when compared with the first embodiment.

Third Embodiment

The following explanation regards the third embodiment of the present invention. The present embodiment is constructed for a case in which the main memory of the computer system that includes the present embodiment has no surplus in decoding and cannot store decimal point position interpolated images. The configuration and operation of the present embodiment are as described hereinbelow.

FIG. 7 is a block diagram showing the principal configuration of the present embodiment. The present embodiment includes filter switching device 201 and prediction value generator 202. These components correspond to the frame memory/motion compensator/motion vector detection of the encoding system that is shown in FIG. 1, and constituent elements other than these components are of the same construction as the encoder shown in FIG. 1. The following explanation of the present embodiment therefore also makes reference to FIG. 1.

Filter switching device 201 switches the filter coefficient of prediction value generator 202 in accordance with filter coefficient information that is supplied from variable-length decoding.

Prediction value generator 202 is made up of: integer picture element read device 2021, filter 2022, and prediction value read device 2023. Prediction value generator 202 uses the motion vectors that are supplied from variable-length decoding to read integer picture elements from a reconstructed image and performs filtering to generate prediction values.

Integer picture element read device 2021 uses motion vectors that are supplied from variable-length decoding to read integer picture elements that include prediction values from a reconstructed image. The integer picture elements that are read are supplied to filter 2022.

Filter 2022 uses the filter coefficients that are switched by filter switching device 201 to interpolates the decimal point picture elements in the integer picture elements that are supplied from integer picture element read device 2021. It will be obvious that the filter coefficients can be directly switched by means of the filter coefficient information that is supplied from variable-length decoding.

Prediction value read device 2023 uses the interpolated picture elements that are supplied from filter 2022 and the motion vectors that are supplied from variable-length decoding to read prediction value blocks.

FIG. 8 is a flow chart showing the operations of the embodiment that is shown in FIG. 7.

In Step S201, integer picture element read device 2021 uses motion vectors that are supplied by variable-length decoding to read integer picture element blocks from a reconstructed image.

In Step S202, filter switching device 201 uses filter coefficient information that is supplied by variable-length decoding to switch the filter coefficients of filter 2022.

In Step S203, filter 2022 uses the filter coefficients that are switched by Step S202 to perform decimal point picture element interpolation of the integer picture elements that are supplied from integer picture element read device 2021.

In Step S204, prediction value read device 2023 uses the motion vectors that are supplied from variable-length decoding to read prediction values from the interpolated images that were obtained in Step S203.

Fourth Embodiment

The following explanation regards the fourth embodiment of the present invention. The present embodiment is constructed for a case in which there is a surplus in the main memory of the computer system that includes the present embodiment and a plurality of decimal point position interpolated images can be stored. The configuration and operation of the present embodiment are described hereinbelow.

FIG. 9 is a block diagram showing the principal configuration of the fourth embodiment of the present invention.

As shown in FIG. 9, the present embodiment includes selective interpolated image switching device 201 b and prediction value generator 202 b. Selective interpolated image switching device 201 b uses filter coefficient information that is supplied from variable-length decoding to switch the interpolated images that prediction value generator 202 b refers to.

Prediction value generator 202 b is made up of a plurality of sets of filters 2021 b and interpolated image storage devices 2022 b and a prediction value read device 2023 b.

Filter 2021 b and interpolated image storage device 2022 b perform filter calculation and store decimal point picture element interpolated images. Prediction value read device 2023 b refers to interpolated images that are selected by selective interpolated image switching device 201 b and uses motion vectors that are supplied from variable-length decoding to read prediction values.

FIG. 10 is a flow chart showing the operation of the embodiment that is shown in FIG. 9.

In Step S201 b, a plurality of decimal point position interpolated images are generated from reconstructed images and stored by a plurality of sets of filters 2021 b and interpolated image storage devices 2022 b.

In Step S202 b, selective interpolated image switching device 201 b uses filter coefficient information that is supplied from variable-length decoding to select interpolated images that prediction value read device 2023 b refers to.

In Step S203 b, prediction value read device 2023 b reads prediction values by using motion vectors that are supplied from variable-length decoding and interpolated images that have been stored in interpolated image storage device 2022 b and selected by selective interpolated image switching device 201 b.

The above-described configuration does not require switching of decimal point position interpolated image filters in region, block, or picture element units, and as a result, the architecture of the processor is effective for cases in which the overhead of filter coefficient switching is not desirable, and moreover, in which the main memory has a large capacity.

Fifth Embodiment

The following explanation regards the fifth embodiment of the present invention. The principal configuration of the present embodiment is similar to that of the first embodiment that is shown in FIG. 3 or the second embodiment that is shown in FIG. 5, and a figure for this configuration is therefore omitted.

As the filter coefficients that are used in filters 1011 and 1011 b in the first or second embodiment, the present embodiment employs a plurality of filter coefficients that at least have different phases, and the operation of this embodiment is similar to that of the first embodiment or second embodiment.

Regarding the effects of the present embodiment, explanation first regards the effects obtained by shifting the phase of the filters.

Explanation first regards the operation of the quarter picture element interpolation that is carried out in the prior art. As shown in FIG. 11, the decimal point picture element interpolation is carried out by a two-stage process in which half picture elements are generated from integer picture elements by means of first-stage processing that employs filter 1 and quarter picture elements are generated from half picture elements by means of second-stage processing that employs filter 2.

Intermediate position interpolation is repeated as shown in FIG. 12(a)-(c) by the above-described two-stage processing. The interpolation produces three decimal point picture elements in the space between integer picture elements that are aligned in the horizontal direction.

As shown in FIG. 13(a)-(c), shifting only first-stage interpolation filters one quarter toward the right results in apparent increments of one quarter, but ⅛ and ⅝ picture elements can be produced in the second-stage interpolation. Further, as shown in FIG. 13(d)-(f), shifting one quarter toward the left can produce ⅜ and ⅞ picture elements in second stage interpolation.

As previously described, even in motion compensation having an apparent accuracy of one-quarter picture element, shifting a filter one-quarter to the left or right allows the three decimal point picture elements that are interpolated between integer picture elements to take on values of one-eighth increments. Of course, it will be obvious that, depending on the method of phase shifting, the decimal point picture elements can take on values of one-sixteenth or one-thirty-second increments.

The following explanation regards the method of shifting phase that is used in the present embodiment.

FIGS. 14(a) and 14(b) show the filter coefficients of a filter that interpolates ½ picture elements and a filter that interpolates ¼ picture elements.

In each figure, the dotted lines show ideal filters, and the solid lines show filters in which the dotted line is shifted ½ or ¼ picture element. In the example that is shown in FIG. 14(a), a filter coefficient for finding the picture element value of the ½ picture element position is shown, and this filter coefficient (a, b, c, c, b, a) is obtained by shifting the ideal filter by ½. The ½ position picture element value P(½) is found by means of the following equation: $\begin{matrix} {{{Encode}\quad{cost}_{coeff1}} = {{\sum\limits_{k = 1}^{P}\quad\left( {{Block}\quad{{cost}_{coeff1}(k)}} \right)} + {F({coeff1})}}} & \left\lbrack {{Equation}\quad 3\text{-}3} \right\rbrack \end{matrix}$

-   -   where P(i) is the picture element value.

In the example shown in FIG. 14(b), a filter coefficient for finding the picture element value of a ¼ picture element position is shown, and this filter coefficient (d, e, f, g, h, i) is obtained by shifting the ideal filter by ¼. As in the case of the ½ position, a picture element value P(¼) of the ¼ position is found by the following equation: P(¼)=(d×P(−2)+e×P(−1)+f×P(0)+g×P(1)+h×P(2)+i×P(3))/(d+e+f+g+h+i)  [Equation 4-2]

To shift the picture elements of interpolated decimal point positions ¼ to the right, instead of filter A that interpolates ½ picture elements at the ½ position, filter B is used that interpolates ¼ picture elements at the same ½ position. In other words, switching the filter coefficient enables control over the phase.

Each of filters 1011 or 1011 b in the present embodiment have filter coefficients with different phases as described above, and the use of these filters for interpolation not only obtains the effect of the first or second embodiment, but enables motion compensation of precise accuracy and improves encoding efficiency.

Sixth Embodiment

Explanation next regards the sixth embodiment of the present invention. The principal configuration of the present embodiment is the same as the configuration of the third embodiment that is shown in FIG. 7 or the fourth embodiment that is shown in FIG. 9, and a figure for this configuration is therefore here omitted.

The present embodiment features the use of a plurality of filter coefficients having at least different phases as the filter coefficients that are used in filters 2022 and 2021 b in the third or the fourth embodiment, and the operation is the same as that of the third embodiment or the fourth embodiment.

In addition, the filters of different phases are the same as the filters that were shown in the fifth embodiment, and detailed explanation is therefore here omitted.

The present embodiment not only realizes the effects of the third or the fourth embodiments, but also allows motion compensation of precise accuracy and improved encoding efficiency.

Seventh Embodiment

Explanation next regards the seventh embodiment of the present invention. The principal configuration of the present embodiment is the same as the configuration of the first embodiment shown in FIG. 3 or the second embodiment shown in FIG. 5, and a figure for this configuration is therefore here omitted.

The present embodiment features the use of filters having at least filter coefficients of different bandwidths as filters 1011 and 1011 b in the first or second embodiment, and is similar in operation to the first embodiment or the second embodiment.

Regarding the effects of the present embodiment, the effects obtained by changing the filter bandwidth will first be explained.

FIG. 15 shows a case of interpolating decimal point picture elements using a filter of broad bandwidth, and a case of interpolating decimal point picture elements using a filter of narrow bandwidth.

From the image shown in FIG. 15(a), the interpolated images that are shown in FIGS. 15(c) and 15(d) were obtained by using a filter having the broad bandwidth amplitude characteristic and a filter having the narrow bandwidth amplitude characteristic that are shown in FIG. 15(b). From FIG. 15(c), it can be seen that interpolating decimal point picture elements by means of the broad bandwidth filter enables the preservation of edge information. The use of a broad bandwidth filter maintains the edge information in an image having many edges, i.e., having many high-frequency components, and improves the effect of motion compensation.

However, when quantization noise is frequently generated as false edges at a low bit rate, the use of a broad bandwidth filter to interpolate decimal point picture elements also preserves the noise. FIGS. 16(a)-(d) show examples of these states of preservation whereby the effect of motion compensation is degraded. As a result, at a low bit rate, the use of a narrow bandwidth filter coefficient in decimal point picture element interpolation can improve the encoding efficiency.

A method is next explained in which bandwidth is modified for maintaining decimal point picture elements.

Assuming that the coefficient of the broad bandwidth filter that is shown in FIG. 15 and FIG. 16 is A and the coefficient of the narrow bandwidth filter is B, switching the filter coefficient from A to B enables decimal point interpolation by means of a narrow bandwidth filter, and switching the filter coefficient from B to A enables decimal point interpolation by means of a broad bandwidth filter.

In other words, the bandwidth for preserving decimal point picture elements can be modified by switching filter coefficients that correspond to each bandwidth characteristic and then interpolating.

Eighth Embodiment

The eighth embodiment of the present invention is next described. The principal configuration of the present embodiment is equivalent to that of the third embodiment shown in FIG. 7 or the fourth embodiment shown in FIG. 9, and a figure for this configuration is therefore here omitted.

The present embodiment features the use of filters having filter coefficients of at least different bandwidths as filters 2022 and 2021 b in the third or fourth embodiment, and the operation of the present embodiment is equivalent to that of the third embodiment or the fourth embodiment. In addition, the filters of differing bandwidth are the same as the filters shown in the seventh embodiment, and detailed explanation is therefore here omitted.

The present embodiment can obtain not only the effects of the third or fourth embodiment, but can also modify the bandwidth for preserving decimal point picture elements.

FIG. 17 is a block diagram showing the schematic configuration of an example of an information processing system that implements a moving picture encoding/decoding device according to the present invention.

As should be clear from the preceding explanation, the moving picture encoding/decoding device according to the present invention can be constituted by hardware, or can be realized by a computer program.

The information processing system that is shown in FIG. 17 is made up of processor 301, program memory 302, and storage mediums 303 and 304. Storage mediums 303 and 304 may be separate storage mediums, or may be storage areas that are constituted by the same storage medium. The storage medium can employ a magnetic storage medium such as a hard disk.

The present invention enables an improvement in the encoding efficiency of a moving picture by switching the filter coefficient for decimal point position interpolation according to the bit rate or nature of a moving picture. This switching of filter coefficient includes both filter selection and estimation. Filter selection means that filter coefficients having different bandwidth and phase are prepared in advance and the optimum filter coefficient then selected from the prepared filter coefficients. On the other hand, filter estimation means that filter coefficients are calculated by means of, for example, adaptive algorithms and the calculated filter coefficients then used in switching.

Manipulating the filter phase enables motion compensation of precise accuracy and improves the encoding efficiency; while manipulating filter bandwidth enables control over the high-frequency region components of an image and quantization noise, whereby the effect of motion compensation can be increased and the encoding efficiency improved.

In addition, switching the filter coefficients by units greater than image block units does not alter the calculation load of filtering and also results in low overhead calculation load due to switching, and the increase in calculation load for decoding is therefore also low. 

1. A moving picture encoding program for causing a computer to execute encoding of a moving picture that realizes motion detection of decimal point accuracy and motion compensation of decimal point accuracy, said program comprising steps of: interpolating picture elements of decimal point positions in a reference image by means of a plurality of sets of filters; detecting the combination of filter and motion vector that realizes the highest encoding efficiency; using the detected filter and motion vector to generate a prediction value; and supplying as output the information of the filter and information of the motion vector that generated the prediction value.
 2. A moving picture decoding program for causing a computer to execute moving picture decoding that realizes motion compensation of decimal point accuracy, said program comprising steps of: based on filter information that is received as input, selecting a filter or an interpolation frame that is referred to; and using a filter that has been switched or interpolation frames that are referred to and a motion vector that is received as input, generating a prediction value.
 3. A moving picture encoding program in the moving picture encoding computer program according to claim 1, wherein: in the step of interpolating picture elements of a decimal point position in a reference image by means of a plurality of sets of filters, a plurality of filters is used in which at least the phases differ.
 4. A moving picture decoding program according to claim 2, wherein: in the step of selecting a filter by means of filter information that has been received as input or interpolation frames that are referred to, a plurality of filters is used in which at least the phases differ.
 5. A moving picture encoding program in the moving picture encoding computer program according to claim 1, wherein: in the step of interpolating picture elements of decimal point position in a reference image by means of a plurality of sets of filters, a plurality of filters is used in which at least bandwidths differ.
 6. A moving picture decoding program according to claim 2, wherein: in the step of selecting a filter by means filter information that has been received as input or interpolation frames that are referred to, a plurality of filters is used in which at least bandwidths differ.
 7. A moving picture encoding method for realizing motion detection of decimal point accuracy and motion compensation of decimal point accuracy, said method comprising steps of: interpolating picture elements of decimal point positions in a reference image by means of a plurality of sets of filters; detecting the combination of filter and motion vector having the highest encoding efficiency; using the detected filter and motion vector to generate a prediction value; and supplying as output the information of the filter and the information of the motion vector that generated the prediction value.
 8. A moving picture decoding method for realizing motion compensation of decimal point accuracy, said method comprising steps of: based on filter information that is received as input, selecting a filter or an interpolation frame that is referred to; and using a filter that has been switched or interpolation frames that are referred to and a motion vector that is received as input, generating a prediction value.
 9. A moving picture encoding method according to claim 7, wherein, as the filters for interpolating picture elements of decimal point positions, a plurality of filters is used in which at least phases differ.
 10. A moving picture decoding method according to claim 8, wherein, as the filters, a plurality of filters is used in which at least phases differ.
 11. A moving picture encoding method according to claim 7, wherein, as filters for interpolating picture elements of decimal point positions, a plurality of filters is used in which at least bandwidths differ.
 12. A moving picture decoding method according to claim 8, wherein, as filters, a plurality of filters is used in which at least bandwidths differ.
 13. A moving picture encoding device for realizing motion detection of decimal point accuracy and motion compensation of decimal point accuracy, said device comprising: means for interpolating picture elements of decimal point positions in a reference image by means of a plurality of sets of filters; means for detecting the combination of filter and motion vector that produces the highest encoding efficiency; means for using the detected filter and motion vector to generate a prediction value; and means for supplying as output information of the filter and information of the motion vector that generated a prediction value.
 14. A moving picture decoding device for realizing motion compensation of decimal point accuracy, said device comprising: means for, based on filter information that is received as input, selecting a filter or an interpolated frame that is referred to; and means for using a switched filter or an interpolated frame that is referred to and a motion vector that is received as input to generate a prediction value.
 15. A moving picture encoding device according to claim 13, wherein said means for interpolating picture elements of decimal point positions uses a plurality of filters in which at least phases differ.
 16. A moving picture decoding device according to claim 14, wherein said means for generating a prediction value uses a plurality of filters in which at least phases differ.
 17. A moving picture encoding device according to claim 13, wherein said means for interpolating picture element of decimal point positions uses a plurality of filters in which at least bandwidths differ.
 18. A moving picture decoding device according to claim 14, wherein said means for generating a prediction value uses a plurality of filters in which at least bandwidths differ. 